package oop;

/**
 * super "可以看作“ 是父类对象的引用，通过super来访问父类中被子类覆盖的方法或发生
 * 使用super调用普通方法，语句没有位置限制，可以在子类中随便调用
 * 在一个类中，若是构造方法的第一行没有调用super(....)或this(...)  那么
  java默认都会调用super()含义是调用父类的无参数构造方法
 */
//查找属性与方法：查找当前类中有没有属性h，依次往上每个父类中找是否有h，直到找到Object
//没有找到则编译错误，如果找到了h则过程终止
public class TestSuper {
    public static void main(String[] args) {
        new ChildClass().f();
    }
}
class FatherClass {
    public int value;
    public void f(){
        value = 100;
        System.out.println("FatherClass.value="+value);
    }
}
class ChildClass extends FatherClass{
    public int value;
    public int age;
    //重写方法
    public void f(){
        super.f();  //调用父类的普通方法 打印父类的方法："FatherClass.value="+value
        value = 200;
        System.out.println("ChildClass="+value);
        System.out.println(value);
        System.out.println(super.value);//调用父类的成员变量  打印父类的属性
    }
    public void f2() {
        System.out.println(age);
    }
}